﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="TransactionAddButtonViewModel.cs" company="Concept Architecture">
//   (c) 2010 Muhammad Umer Farooq
// </copyright>
// <summary>
//   Defines the  type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace Hisaab.Client.Modules.Core.Transaction.ViewModel
{
    using System.Windows.Input;

    using Hisaab.Client.Common.BaseClasses;
    using Hisaab.Client.Model;
    using Hisaab.Client.Modules.Core.Transaction.Commands;

    /// <summary>
    /// Defines the <seealso cref="TransactionAddButtonViewModel"/> type.
    /// </summary>
    public class TransactionAddButtonViewModel : ViewModelBase
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="TransactionAddButtonViewModel"/> class.
        /// </summary>
        public TransactionAddButtonViewModel()
        {
            AddTransaction = new AddTransactionCommand(this);
            AddExpanse = new AddTransactionCommand(this, TransactionTypes.Expanse);
            AddIncome = new AddTransactionCommand(this, TransactionTypes.Income);
            AddTransfer = new AddTransactionCommand(this, TransactionTypes.Transfer);
        }

        /// <summary>
        /// Gets or sets the add Target.
        /// </summary>
        /// <value>
        /// The add Target.
        /// </value>
        public ICommand AddTransaction { get; set; }

        /// <summary>
        /// Gets or sets the add expanse.
        /// </summary>
        /// <value>
        /// The add expanse.
        /// </value>
        public ICommand AddExpanse { get; set; }

        /// <summary>
        /// Gets or sets the add income.
        /// </summary>
        /// <value>
        /// The add income.
        /// </value>
        public ICommand AddIncome { get; set; }

        /// <summary>
        /// Gets or sets the add transfer.
        /// </summary>
        /// <value>
        /// The add transfer.
        /// </value>
        public ICommand AddTransfer { get; set; }
    }
}